package com.king.java.tools.ssh;

import java.io.InputStream;
import java.io.OutputStream;
import java.util.List;

/**
 * 描述: SSH连接工具接口
 *
 * @author : sujinchen
 * @date : 2020/10/21
 */
public interface SSHUtils {

    /**
     * 连接远程主机
     *
     * @param remoteInfo 远程主机信息
     * @return key 连接的uuid
     */
    String ssh(RemoteInfo remoteInfo);

    /**
     * 发送单条指令
     * @param key 连接主机的ID
     * @param command shell指令
     * @return 结果数据集合
     */
    List<String> send(String key,String command);

    /**
     * 交互方式
     * @param key 连接主机的ID
     * @param in 输入流 System.in
     * @param out 输出流 System.out
     */
    void interaction(String key,InputStream in, OutputStream out);

    /**
     * 发送多条指令
     * @param key 连接主机的ID
     * @param commands shell指令集
     * @return
     */
    List<String> sends(String key, String[] commands);
}
